Client-server is a computing architecture that separates a client from a server over a computer network. Each client or server connected to the computer network can be referred to as a node. The most basic client-server architecture type employs only two node types: clients and servers. This architecture type is sometimes referred to as “two-tier.” The two-tier architecture allows clients and servers to share files and resources over the computer network.
Clients may run many software instances. Each client software instance can send data file requests to one or more connected servers. In turn, the servers can accept these requests, process them, and return the requested data file to the requesting client. So that no other client may edit the data file, a “lock” may be placed on the requested data file on the server. However, when a connection over the computer network between the client and the server is lost, the lock may also be lost. This may be problematic because when the connection is regained, without the lock in place, the client has no way to know if the data file was edited by another client after the connection (and consequently the lock) was lost.